1. Field of the Invention
The present invention relates to the field of device access and, more particularly, to an automated solution to provide immediate requisite access to data and applications on an attached external device.
2. Description of the Related Art
Advances in portable hard drives and flash drives permit users to easily carry a tremendous amount of convenient storage space when traveling, which could in theory be used to satisfy their data and application needs. At present, however, portable storage devices are only useful for storing data and are unable to store applications that consume or manipulate the data. This is because use of most modern applications requires a set of Application Program Interfaces (APIs), Dynamic Link Libraries (DLLs), registry settings, and the like, which are stored on a main drive of an operating system at application installation time. Consequently, data can be transported on external drives, but is often unable to be used because access to a necessary and corresponding application is unavailable.
A wide variety of solutions have been developed to ensure users have access to needed applications. One attempted solution is to continuously install and uninstall application programs, such as from images stored on the portable drive. This solution has many flaws. First, users are often not granted access to install programs on public use machines, such as those found at libraries, internet cafés, and airports. Further, constantly installing and removing programs is a practice that corrupts a registry and shared library stores, is time consuming, and may even be impossible due to computer specific hashes used to “activate” many software programs.
One technique that could minimize some of the flaws with repetitive install and uninstall operations is application virtualization. Commercial application virtualization solutions are currently provided by companies such as Atiris, Inc., Softricity Inc., and AppStream Inc. Application virtualization creates a virtual application layer between an operating system and an application. This layer is activated when a program is installed. The virtual application layer functions as a proxy between a registry and an installed application, where application specific settings are placed in the virtual application layer. If an application is moved from one machine to another that includes the same virtual application layer, machine-specific settings do not have to be adjusted. In order for a virtualized application to execute, the application virtualization layer first needs to be executing.
This solution fails to overcome problems involving insufficient permission to install applications. Permission problems are actually increased, since creating a new application virtualization layer on a machine is a very intrusive process typically requiring system administrator privileges. Further, application virtualization fails to address situations of executing applications from a periodically removed external drive. When the drive is present, necessary application programs can exist. When removed, these programs will be absent, creating problems and errors when an associated icon or shortcut is selected.
A traditional solution to ensuring application availability is to create an application server on the network that allows a multitude of users to access an application. However, the application server is only accessible when a user is connected to the network. Thus, the issue of needing additional hardware and software to overcome the distance resurfaces in order to provide a remote user with access. Further, network latency issues can result in application performance that is below an acceptable level. This can be especially true when a traveler is accessing a served application over a low quality network connection.
In addition to issues of hardware and performance, current software licensing practices are a precarious quagmire of issues relating to applications. Most commercial software requires a license and/or activation for each installation of the application, whether or not the additional installation is for the same user. A user can easily consume multiple licenses in order to accommodate an assortment of devices that are necessary to provide them access in a variety of locations and situations. For example, a user may need a license for a work computer, a home computer, a laptop computer, and the like. Conventional solutions working with the current licensing system severely limit a user and a company in terms of portability and affordability.